1. Field of the Invention
The present invention relates to memory management of a computer system, and more particularly to a computer system for efficiently managing a memory in NAS (Network Attached Storage), a file server, and the like and its memory management method.
2. Description of the Related Art
Hitherto, various computer systems for sending and receiving data between a client and a server through a LAN or a communication network are in wide use. In these computer systems, there is a kind of system which uses a server to register a file and the other data, like a system such as File Server, NAS (Network Attached Storage), or the like.
The NAS is a storage sub-system which contains a network interface. The NAS can be used by directly connecting a storage sub-system with a lot of hard disk drives mounted there to a network, like the RAID structure. Since the NAS can share one storage among a plurality of servers, it has such an advantage that processing can be continued in the event of a failure.
FIG. 6 is a block diagram showing the structure of the conventional NAS server. In a computer system such as the File Server, the NAS, and the like, the processing for reading out the stored data by a client 200 starts accepting a read access request of a file stored in a HDD 51 through a NIC (Network Interface Card) 60 from the client 200, hence to have access to a predetermined HDD 51 through a Fiber Channel (FC) controller 50 and the like, and ends by returning the data to the client 200.
While, in the case of a write request from a client 200, the NAS server receives data from the client 200, writes the data into the HDD 51, and notifies the client 200 that the write processing has been normally completed, thereby finishing the whole write processing.
In this processing of a write request, there has been, hitherto, used a method for improving the processing performance of the NAS by informing a client 200 of the write completion more quickly.
Specifically, at the instant that the write data received from a client 200 is once stored in a memory, the client 200 is notified of the write completion without waiting for the completion of writing into the HDD 51.
Writing into the HDD 51 that is the only mechanical element requires the longest processing time in the whole write operation. The write data once stored in a memory is collectively written into the HDD 51 when the load of the HDD 51 is comparatively low, thereby making it possible to finish the write processing in a short time at a client side. In this case, the performance of the NAS is recognized to be high. At the NAS side, since the processing of writing the write data into the HDD 51 can be collectively processed, it is possible to improve efficiency with high processing performance.
This conventional method, however, has a problem that the data to be stored in the HDD 51 may disappear before being stored there when a server is broken down due to unexpected power-down and the like.
Further, once the client 200 receives a notice of completion of the write data, there is a case where the write data having been held so far is abandoned, because it is not necessary to hold the same write data. This becomes a situation where the data to be stored is held neither in the NAS server nor in the client, which causes lost data.
As the conventional technique to cope with this problem, a method for holding the write data in an NVRAM (Nonvolatile Memory) is widely in use. For example, the NVRAM is formed on a PCI card, as illustrated in an example of FIG. 6, thereby forming an NVRAM card.
FIG. 7 is a flow chart showing a flow of the conventional NAS write data in the above case. A NAS server sequentially transfers the write data received from a client 200 and stored in a memory 31 (Step 703) to the NVRAM card on a PCI bus (Step 704). After confirming that the data is written into the NVRAM (Step 705), the NAS server returns a completion notice to the client (Step 706).
The above-mentioned conventional technique, however, has the following problems.
In these days, since the speed of a network is improved thanks to the advent of the Giga bit Ether and the like, the load of the NAS server is increased, thereby failing to keep up the processing speed. This is because of the shortage of the bandwidth in a PCI bus and a memory bus in addition to the shortage of the TCP/IP processing speed of a network.
For example, a write request from a client needs several data transfer on the PCI bus in the above-mentioned method using the NVRAM card, which causes the shortage of the bandwidth in a bus.